﻿#region Copyright ©2008-2011, Technische Universitaet Muenchen
// ====================================================================================================
//
// Last Changed by       $Author: then $
// Last Changed Date     $LastChangedDate: 2009-06-09 09:28:29 +0200 (Tue, 09 Jun 2009) $
// Last Changed Revision $Rev: 185 $
//
// ====================================================================================================
#endregion

using System.Windows.Controls;

namespace Tum.CollabXT
{
    /// <summary>
    /// Conversion workflow control interface.
    /// </summary>
    public interface IConversionWorkflow
    {
        /// <summary>
        /// Sets the state of the workflow control buttons.
        /// </summary>
        /// <param name="prevButtonClickable">Is the prev button clickable?</param>
        /// <param name="nextButtonClickable">Is the next button clickable?</param>
        void UpdateButtonState(bool prevButtonClickable, bool nextButtonClickable);

        /// <summary>
        /// Call this, if a valid processing has been created.
        /// </summary>
        void ValidateProcessing();

        /// <summary>
        /// Call this, if data, relevant to the processing, has changed -> no valid processing exists.
        /// </summary>
        void InvalidateProcessing();

        /// <summary>
        /// Equals a click on the "next" button.
        /// Button state and NextPageRequested are not checked during this action (disabled "next" button is ignored).
        /// </summary>
        void NextPage();

        /// <summary>
        /// Equals a click on the "prev" button.
        /// Button state and PrevPageRequested are not checked during this action (disabled "prev" button is ignored).
        /// </summary>
        void PreviousPage();
    }
}
